import { BaseSocket } from './baseSocket';

/**
 * 曲面分析
 */
export class SurfEvaluate extends BaseSocket {
  /**
   * 拟合误差分析
   * @param params
   * @returns
   */
  async getFittingError(params: {
    surface: string; // 拾取的曲面id
  }) {
    return await this.execCmd({
      c: 'shape.GetFittingError',
      a: params,
    });
  }

  /**
   * 形变误差分析
   * @param params
   * @returns
   */
  async getDeformError(params: {
    surface1: string; // 原始曲面
    surface2: string; // 目标曲面
  }) {
    return await this.execCmd({
      c: 'shape.GetDeformError',
      a: params,
    });
  }

  /**
   * 脱模检查 选择若干曲面片，指定脱模方向，返回true/false，true for 可脱模
   * @param params
   * @returns
   */
  async removalShape(params: {
    surfaces: string[]; // 拟合曲面ID
    offDir: number[]; // 脱壳方向作为轴向方向
    refOrigin: number[]; // 轴向方向起点
    refAglDir: number[]; // 0度角方向
  }) {
    return await this.execCmd({
      c: 'shape.RemovalShape',
      a: params,
    });
  }
}
